回归分析中的共线性问题

您所在的位置:网站首页 multicollinearity test 回归分析中的共线性问题

回归分析中的共线性问题

2024-05-09 01:47| 来源: 网络整理| 查看: 265

回归分析中的共线性问题 2018-09-14 R 约 4626 字 预计阅读 10 分钟 文章目录

主要参考博文 :

Dealing with The Problem of Multicollinearity in R Multicollinearity in R 引子

如果现在我们预测一个国家,比如说中国,2018 年全年的旅游收入 (美元)。因变量是中国 2018 年度的旅游收入 Y,自变量 X 我们假设存在下面两组:

X1 = 2018 年来中国的总游客人数 X2 = 2018 年中国政府对旅游作出的市场宣传财政支出 X3 = a * X1 + b * X2 + c,a、b、c 是三个常数

另一组:

X1 = 2018 年来中国的总游客人数 X2 = 2018 年中国政府对旅游作出的市场宣传财政支出 2018 年人民币兑换美元平均汇率

上面两个情况,那种情况下预测得到 Y 会更准确呢?相信大家都会选第二组 X,因为从直觉来看第二组 X 有 3 个不同的变量,而每一个变量对可以为我们预测 Y 提供一些不一样的信息。而且,这 3 个变量都不是直接从其他变量转换来的。或者说,没有哪个变量能与其他变量构成一个线性组合。

反之,在第一组 X 里,只有两个变量提供了有用的信息,而第 3 个变量只是前两个变量的线性组合。不考虑这个变量直接构建模型的话,其实最终的模型中也包含了这个组合。

在第一组出现的这种情况就是两个变量的共线性(multicollinearity)。在这组变量里,有的变量与其他变量之间强相关(不一定要求所有变量之间都相关,但至少是两个)。此时第一组变量得到的模型将不如第二组变量得到的模型准确,因为第二组变量提供的信息比第一组要多。因此,在做回归分析的时候,研究如何鉴定和处理共线性很有必要。

概念和基础

维基百科的 Multicollinearity 词条 写道:

In statistics, multicollinearity (also collinearity) is a phenomenon in which one predictor variable in a multiple regression model can be linearly predicted from the others with a substantial degree of accuracy. In this situation the coefficient estimates of the multiple regression may change erratically in response to small changes in the model or the data. Multicollinearity does not reduce the predictive power or reliability of the model as a whole, at least within the sample data set; it only affects calculations regarding individual predictors. That is, a multivariate regression model with collinear predictors can indicate how well the entire bundle of predictors predicts the outcome variable, but it may not give valid results about any individual predictor, or about which predictors are redundant with respect to others.

多重回归时,一个自变量能被其他自变量在一定程度上线性预测时就是共线性。此时,模型或者数据中的微小的变化就可能会引起回归系数异常的变化。共线性不会降低模型整体的预测效力和可信度(在相同样本数据前提下),但它将影响对个体的预测。即,在存在共线性情况下,模型仍能反映所有自变量对因变量的预测能力,但对于单个自变量所给出的预测,或者关于自变量是否冗余的结论则都不可信。

共线性的出现可以有很多原因。比如哑变量的引入或者不正确的使用可能会导致共线性。使用通过其他变量转换生成的变量也会导致共线性,上面的例子就是这样的。另外,如果引入的变量之间本身就是相关的,或者提供的信息相似也有可能造成共线性(下面会出现例子)。共线性在总体上不会导致什么问题,但是却对单个变量及其预测效能影响巨大。它可能使得我们根本没办法鉴定哪些变量是显著性的。有时候你会发现一组变量的预测结果非常相似,或者一些变量相对其他一些变量完全就是冗余的。总结起来,共线性可能导致这些后果:

无法鉴定哪些变量是具有显著意义的。因为共线性会使得模型相对于所选取的样本数据十分敏感,不同的样本数据会得到不同的显著变量结果 因为共线性的存在使得标准差倾向于异常的大,因此也无法准确估计回归系数。选取不同的样本数据的时候,回归系数的值甚至是符号都会发生变化。 模型对于加入或剔除独立的变量异常敏感。添加一个与当前存在的变量正交的变量时,模型也可能会得出完全不同的结果;从模型中剔除一个变量也可能会对模型造成很大的影响。 可信区间变得很宽,因此可能无法拒绝备择假设。备择假设认为在总体人群中回归系数为 0 (即模型是随机事件观察到的结果)。

好的,现在我们知道共线性不是个好事。那要怎么识别共线性呢?方法有很多:

第一个也是最简单的就是看变量之间两两相关性。在很多情况下,变量之间多多少少都存在一些相关性。但是变量之间的高度相关性就很容易导致共线性问题了。 加入或者剔除变量,或者样本数据变化时回归系数变化异常的大也提示共线性的存在。使用不同的样本数据建模得到不同的显著变量也提示共线性存在。 另一个方法是使用方差扩大因子(或方差膨胀因子,variance inflation factor,VIF)。VIF > 10 时提示变量之间存在共线性。一般地,我们认为 VIF < 4 时模型稳定。 模型总体 R 方很高,但是多数变量的回归系数都不显著。这也提示模型中存在变量间共线性。 Farrar-Glauber 检验是用于检测共线性的一种统计方法。它又包含了 3 个进一步的检验:首先是卡方检验确定系统中是否有共线性的存在;然后是方差检验(或叫 F 检验)用于发现哪些变量间存在共线性关系;最后是 t 检验确定共线性的模式和类别。 例子

下面来通过一个列子看看怎么鉴别数据中的共线性以及简单的处理。

我们用到的数据叫做 CPS_85_Wages data,来源与介绍:

These data consist of a random sample of 534 persons from the CPS, with information on wages and other characteristics of the workers, including sex, number of years of education, years of work experience, occupational status, region of residence and union membership. Source: Berndt, ER. The Practice of Econometrics. 1991. NY: Addison-Wesley. (Therese.A.Stukel_AT_Dartmouth.EDU) (MS Word format) 21/Jul/98

这里可以下载到:https://www.economicswebinstitute.org/data/wagesmicrodata.xls 。

我也上传到了 GitHub repo:wagesmicrodata.xls 。

R 的 mosaic 包也附带了这个数据,library(mosaic) 然后 data("CPS85") 就可以加载这个数据了,但是这个数据和我们直接下载的稍微形式变了一点,我嫌麻烦就直接用了 xls 文件了。但是其实 ?CPS85 查看帮助看看关于数据的细节也不错的。

简单来说,这个数据是来自 534 人的样本的薪水和其他一些信息,比如年龄、性别、人种、受教育年限、工作年限、工作状态、居住地、工会状态、婚姻状态等等。而我们现在就是想通过这一系列变量来预测薪水。

先来看看数据长什么样子:

1 2 3 4 # 原始数据里数据在 Sheet2,名叫 Data, 第一行第一列没用,我都直接自己删掉了 CPS85 |t|) (Intercept) 1.07860 0.68751 1.57 0.11729 OCCUPATION -0.00742 0.01311 -0.57 0.57176 SECTOR 0.09146 0.03874 2.36 0.01859 * UNION 0.20048 0.05247 3.82 0.00015 *** EDUCATION 0.17937 0.11076 1.62 0.10595 EXPERIENCE 0.09582 0.11080 0.86 0.38753 AGE -0.08544 0.11073 -0.77 0.44067 SEX -0.22200 0.03991 -5.56 4.2e-08 *** MARR 0.07661 0.04193 1.83 0.06826 . RACE 0.05041 0.02853 1.77 0.07787 . SOUTH -0.10236 0.04282 -2.39 0.01719 * --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.44 on 523 degrees of freedom Multiple R-squared: 0.318, Adjusted R-squared: 0.305 F-statistic: 24.4 on 10 and 523 DF, p-value:


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3